#import <UIKit/UIKit.h>
#import <TXLiteAVSDK_Professional/TXUGCRecord.h>
#import "VideoPreviewViewController.h"
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MPMediaPickerController.h>
#import "ColorMacro.h"
#import "UIView+Additions.h"
#import "BeautySettingPanel.h"
#import "VideoRecordProcessView.h"
#import "VideoRecordMusicView.h"
#import "VideoEditViewController.h"
#import "MBProgressHUD.h"
#import <QMUIKit/QMUIKit.h>

@interface VideoConfigure : NSObject
@property(nonatomic,assign)TXVideoAspectRatio videoRatio;
@property(nonatomic,assign)TXVideoResolution videoResolution;
@property(nonatomic,assign)int bps;
@property(nonatomic,assign)int fps;
@property(nonatomic,assign)int gop;
@end

@interface RecordMusicInfo : NSObject
@property (nonatomic, copy) NSString* filePath;
@property (nonatomic, copy) NSString* soneName;
@property (nonatomic, copy) NSString* singerName;
@property (nonatomic, assign) CGFloat duration;
@end

typedef NS_ENUM(NSInteger,SpeedMode)
{
    SpeedMode_VerySlow,
    SpeedMode_Slow,
    SpeedMode_Standard,
    SpeedMode_Quick,
    SpeedMode_VeryQuick,
};
/**
 *  短视频录制VC
 */
@interface VideoRecordViewController : UIViewController
{
    BOOL                            _cameraFront;
    BOOL                            _lampOpened;
    BOOL                            _bottomViewShow;
    
    int                             _beautyDepth;
    int                             _whitenDepth;
    
    BOOL                            _cameraPreviewing;
    BOOL                            _videoRecording;
    BOOL                            _isPaused;
    BOOL                            _isFlash;
    
    UIButton *                      _btnRatio;
    UIButton *                      _btnRatio43;
    UIButton *                      _btnRatio11;
    UIButton *                      _btnRatio169;
    CGRect                          _btnRatioFrame;
    UIView *                        _mask_buttom;
    UIView *                        _videoRecordView;
    UIButton *                      _btnDelete;
    UIButton *                      _btnStartRecord;
    UIButton *                      _btnFlash;
    UIButton *                      _btnCamera;
    UIButton *                      _btnBeauty;
    UIButton *                      _btnMusic;
    UIButton *                      _btnLocalVideo;
    
    UIButton *                      _btnLamp;
    UIButton *                      _btnDone;
    UILabel *                       _recordTimeLabel;
    NSInteger                       _currentRecordTime;
    
    BeautySettingPanel*             _vBeauty;
    
    BOOL                            _navigationBarHidden;
    BOOL                            _statusBarHidden;
    BOOL                            _appForeground;
    
    UIView*                         _tmplBar;
    
    UIDeviceOrientation             _deviceOrientation;
    AVAudioPlayer*                  _player;
    NSTimer*                        _timer;
    
    NSMutableArray*                 _speedBtnList;
    NSString*                       _BGMPath;
    CGFloat                         _BGMDuration;
    
    VideoRecordProcessView *        _progressView;
    VideoRecordMusicView *          _musicView;
    VideoConfigure*                 _videoConfig;
    TXVideoAspectRatio              _aspectRatio;
    SpeedMode                       _speedMode;
    BOOL                            _isBackDelete;
    int                             _deleteCount;
    float                           _zoom;

}
-(instancetype)initWithConfigure:(VideoConfigure*)configure;
-(void)stopCameraPreview;
-(void)resetVideoUI;
-(void)refreshRecordTime:(NSInteger)second;
@end
